load("//ts:prettier.bzl", "prettier_test")
load("//ts:eslint.bzl", "eslint_test")
load("//ts/svelte:svelte.bzl", "compile_svelte", "svelte_check")
load("//ts:esbuild.bzl", "esbuild")
load("//ts:generate_page.bzl", "generate_page")
load("//ts:compile_sass.bzl", "compile_sass")
load("//ts:typescript.bzl", "typescript")
load("//ts:jest.bzl", "jest_test")

generate_page(page = "change-notetype")

compile_sass(
    srcs = ["change-notetype-base.scss"],
    group = "base_css",
    visibility = ["//visibility:public"],
    deps = [
        "//sass:base_lib",
        "//sass:scrollbar_lib",
        "//sass/bootstrap",
    ],
)

_ts_deps = [
    "//ts/components",
    "//ts/lib",
    "//ts/sveltelib",
    "@npm//@fluent",
    "@npm//@types/jest",
    "@npm//lodash-es",
    "@npm//svelte",
    "@npm//marked",
]

compile_svelte(deps = _ts_deps)

typescript(
    name = "index",
    deps = _ts_deps + [
        ":svelte",
    ],
)

esbuild(
    name = "change-notetype",
    args = {
        "globalName": "anki",
        "loader": {".svg": "text"},
    },
    entry_point = "index.ts",
    output_css = "change-notetype.css",
    visibility = ["//visibility:public"],
    deps = [
        ":base_css",
        ":index",
        ":svelte",
        "@npm//bootstrap-icons",
    ],
)

# Tests
################

prettier_test()

eslint_test()

svelte_check(
    name = "svelte_check",
    srcs = glob([
        "*.ts",
        "*.svelte",
    ]) + [
        "//sass:button_mixins_lib",
        "//sass/bootstrap",
        "@npm//@types/bootstrap",
        "@npm//@types/lodash-es",
        "@npm//@types/marked",
        "//ts/components",
    ],
)

jest_test(
    protobuf = True,
    deps = [
        ":index",
    ],
)
